package org.lql.algo.codecrush.week005;

/**
 * @author: liangqinglong
 * @date: 2025-08-05 17:51
 * @description: LCR 127. 跳跃训练 <a href="https://leetcode.cn/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/description/">...</a>
 **/
public class TrainWays {

	/**
	 * 今天的有氧运动训练内容是在一个长条形的平台上跳跃。平台有 num 个小格子，每次可以选择跳 一个格子 或者 两个格子。请返回在训练过程中，学员们共有多少种不同的跳跃方式。
	 * <p>
	 * 结果可能过大，因此结果需要取模 1e9+7（1000000007），如计算初始结果为：1000000008，请返回 1。
	 * <p>
	 * 示例 1：
	 * <p>
	 * 输入：n = 2
	 * 输出：2
	 * 示例 2：
	 * <p>
	 * 输入：n = 5
	 * 输出：8
	 * <p>
	 * <p>
	 * 提示：
	 * <p>
	 * 0 <= n <= 100
	 */
	public int trainWays(int num) {
		if (num == 0) {
			return 1;
		}
		if (num == 1) {
			return 1;
		}
		int a = 1;
		int b = 1;
		int sum = 0;
		for (int i = 2; i <= num; i++) {
			sum = (a + b) % 1000000007;
			a = b;
			b = sum;
		}
		return sum;
	}

	public static void main(String[] args) {
		TrainWays trainWays = new TrainWays();
		System.out.println(trainWays.trainWays(5));
	}
}
